From: Georges Basile Stavracas Neto Date: Fri, 15 Jan 2021 18:58:33 +0000 (-0300) Subject: workspacesView: Use calculated workspace state for progress X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~616^2^2~398 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=ca066a4ba616f227635240abfb68443140f528bb;p=gnome-shell.git workspacesView: Use calculated workspace state for progress It works just like before, except that this has the nice side effect of not changing the workspace mode when leaving the overview from the app grid state. Part-of: --- diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index 802d15eed..743d99720 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -233,16 +233,32 @@ class WorkspacesView extends WorkspacesViewBase { return Math.clamp(spacing, WORKSPACE_MIN_SPACING, WORKSPACE_MAX_SPACING); } - _updateWorkspacesState() { + _getWorkspaceModeForOverviewState(state) { const { ControlsState } = OverviewControls; + switch (state) { + case ControlsState.HIDDEN: + return 0; + case ControlsState.WINDOW_PICKER: + return 1; + case ControlsState.APP_GRID: + return 0; + } + + return 0; + } + + _updateWorkspacesState() { const adj = this._scrollAdjustment; const fitMode = this._fitModeAdjustment.value; - const overviewState = this._overviewAdjustment.value; - const normalizedWorkspaceState = 1 - - Math.abs(ControlsState.WINDOW_PICKER - overviewState); - const workspaceMode = Util.lerp(normalizedWorkspaceState, 0, fitMode); + const { initialState, finalState, progress } = + this._overviewAdjustment.getStateTransitionParams(); + + const workspaceMode = (1 - fitMode) * Util.lerp( + this._getWorkspaceModeForOverviewState(initialState), + this._getWorkspaceModeForOverviewState(finalState), + progress); // Fade and scale inactive workspaces this._workspaces.forEach((w, index) => { @@ -250,9 +266,9 @@ class WorkspacesView extends WorkspacesViewBase { const distanceToCurrentWorkspace = Math.abs(adj.value - index); - const progress = 1 - Math.clamp(distanceToCurrentWorkspace, 0, 1); + const scaleProgress = 1 - Math.clamp(distanceToCurrentWorkspace, 0, 1); - const scale = Util.lerp(WORKSPACE_INACTIVE_SCALE, 1, progress); + const scale = Util.lerp(WORKSPACE_INACTIVE_SCALE, 1, scaleProgress); w.set_scale(scale, scale); }); }